package com.ccc.scala.base5_function

object Function5_ {
  def main(args: Array[String]): Unit = {
    // 函数作为对象
    // 1. 函数也是一个对象
    def fun1(): Unit = {
      println("fun1...")
    }

    // 这里实际上是把函数调用之后的返回值给f1 f2
    val f1 = fun1
    val f2 = fun1()
    println(f1) // ()
    println(f2) // ()

    // 如果将函数作为整体，而不是执行结果赋值给变量，那么需要采用特殊符号： _
    val f3 = fun1 _
    println("*********")
    f3()

    // 函数在独立使用的时候，参数声明没有个数限制，
    // 但是如果将函数作为对象给别人使用，那么函数的参数声明最多为22个

    // 函数的另一种写法：
    val f4: () => Unit = {
      fun1 _
    }


  }
}
